home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Nordlicht Spiele / Nordlicht Spiele 08-01 (19xx)(Nordlicht)(DE)(PD).zip / Nordlicht Spiele 08-01 (19xx)(Nordlicht)(DE)(PD).adf / convoy / convoy.amosSourceCode < prev    next >
AMOS Source Code  |  1992-09-23  |  10KB  |  280 lines

  1. Hide : Load "music" : SOU=Start(3)
  2. Dim X1(200),Y1(200),YY#(340),A(10),X(10),Y(10),HI(6),H$(6)
  3. For F=1 To 5 : HI(F)=1200-F*100 : H$(F)="mr x " : Next F
  4. H$(1)="d.a.n"
  5. Rem------------------------------------------------------------------- 
  6. Rem INTRO SCREEN 
  7. Rem------------------------------------------------------------------- 
  8. ST:
  9. Unpack 4 To 0 : Curs Off 
  10. Cls 0,0,0 To 320,32
  11. For F=0 To 19 : Paste Bob F*16,16,9 : Paste Bob F*16,240,9 : Next F
  12. For F=2 To 14 : Paste Bob 0,F*16,1 : Paste Bob 304,F*16,1 : Next F
  13. No Mask : Make Mask 21 : Paste Bob 35,38,21
  14. Set Rainbow 0,1,200,"(2,1,15)(2,0,15)(1,1,15)(5,1,15)(1,-1,15)","(2,1,15)(2,-1,15)(1,1,15)(5,1,15)(1,-1,15)","(2,0,15)(2,0,15)(1,1,15)(5,0,15)(1,-1,15)"
  15. Rainbow 0,1,84,200
  16. Get Bob 60,0,240 To 320,256
  17. For F=240 To 96 Step -1
  18. Ink 0 : Wait Vbl : Draw 0,F+16 To 320,F+16 : Paste Bob 0,F,60
  19. Next F
  20. D$="convoy by dan ...... just "
  21. D$=D$+"steer your truck aroud picking up the tokens before they explode use fire button for turbo..and dont crash into the walls or your trail ok "
  22. D$=D$+"the green gems slow you down and the red speed you up.........this game was written with .amos. the best basic ever           *"
  23. D=1 : CC=0 : Music 1 : Tempo 17 : Led Off 
  24. Screen Open 1,355,150,2,Lowres : Curs Off : Screen Display 1,132,165,320,150 : Screen 1
  25. Screen Display 0,,,,120
  26. Y=1 : Y1=1 : Screen 1 : Screen To Front 1
  27. Def Scroll 1,0,18 To 355,109,-2,0
  28. Def Scroll 2,160,18 To 220,77,0,-1
  29. Def Scroll 3,100,18 To 158,76,0,1
  30. X=40 : Y=20 : Y1=60 : C=0
  31. Repeat 
  32. Zoom 1,320,67,322,87 To 1,320,90,322,96
  33. Wait Vbl 
  34. Scroll 1 : Scroll 2 : Scroll 3
  35. B=Asc(Mid$(D$,D,1)) : If B=32 Then B=124
  36. If B=46 Then B=123
  37. If B=42 Then D=1 : B=Asc(Mid$(D$,A,1)) : If B=32 Then B=124
  38. CC=CC+1 : If CC>7 Then Paste Bob 320,67,B-75 : CC=0 : Inc D
  39. Inc C : If C>1000 Then C=0 : Wait Vbl : Rainbow 0,1,0,0 : Gosub HSC : Rainbow 0,1,84,200 : Screen Show 0 : Screen 1
  40. Until Fire(1)=-1
  41. Screen Close 1 : Rainbow 0,1,0,0 : Unpack 4 To 0 : Curs Off 
  42. Rem------------------------------------------------------------------- 
  43. Rem SET UP 
  44. Rem------------------------------------------------------------------- 
  45. DL=0 : T=0 : AD=0 : SC1=0 : SC2=0 : SC3=0 : SC4=0 : LE1=0 : LE2=1 : TT=15
  46. SP=10 : SPE=0 : P=0 : TS=70
  47. T1=1 : T2=0
  48. Gosub LEVEL : Gosub KEN
  49. NL:
  50. Paste Bob 0,0,1
  51. X=64 : Y=160 : AX=16 : AY=0 : NU=5 : R1=4 : R2=3 : R3=2
  52. X1(3)=X : Y1(3)=Y : AD=0 : SC=0
  53. X1(1)=32 : Y1(1)=160 : X1(2)=48 : Y1(2)=160
  54. Music Stop 
  55. Get Block 1,80,125,144,50
  56. Ink 0 : Bar 120,130 To 210,150
  57. Ink 15 : Box 115,125 To 205,145
  58. Ink 14 : Box 116,126 To 204,144
  59. Ink 13 : Box 117,127 To 203,143
  60. Ink 12 : Bar 118,128 To 202,142
  61. Ink 6 : Gr Writing 0 : Text 125,138,"GET READY"
  62. C=0
  63. Repeat 
  64. Inc C
  65. Until C>4000 or Fire(1)=-1
  66. Put Block 1,80,125
  67. Rem--------------------------------------------------------------------
  68. Rem  MAIN LOOP       
  69. Rem -------------------------------------------------------------------
  70. Do 
  71. J=Jup(1) : If J<>0 Then AX=0 : AY=-16 : NU=6
  72. J=Jdown(1) : If J<>0 Then AX=0 : AY=16 : NU=8
  73. K=Jleft(1) : If K<>0 Then AX=-16 : AY=0 : NU=7
  74. K=Jright(1) : If K<>0 Then AX=16 : AY=0 : NU=5
  75. If Fire(1)=-1 Then Inc SPE
  76. Inc SPE : If SPE<SP Then Goto JU
  77. SPE=0
  78. Add X,AX : Add Y,AY : X1(R1)=X : Y1(R1)=Y
  79. Wait Vbl 
  80. P=Point(X+9,Y+9)
  81. Paste Bob X,Y,NU : Paste Bob X1(R2),Y1(R2),4 : Inc R1 : If R1>200 Then R1=1
  82. Inc R2 : If R2>200 Then R2=1
  83. Paste Bob X1(R3),Y1(R3),1 : Inc R3 : If R3>200 Then R3=1
  84. If AD>0 Then Dec R3 : Dec AD
  85. If X=TX and Y=TY Then P=6 : T=0 : DL=0 : AD=TN : SC=SC+100-TN*10 : Sam Raw %11,SOU+22504,10000,18000 : T2=T2-1 : Gosub KEN
  86. If P>10 Then Goto E
  87. If P=10 Then SC=SC+5 : Dec SP : If SP<3 Then SP=3
  88. If P<6 Then SC=SC+5 : Inc SP : If SP>10 Then SP=10
  89. JU:
  90. If SC>0 Then Gosub SCORE
  91. Wait 1
  92. Inc JL : If JL>145 Then JL=0 : Gosub JUEL
  93. If T=0 Then Inc DL : If DL>60 Then Gosub TKEN
  94. If T=1 Then Inc DL : If DL>TS Then Inc TN : Paste Bob TX,TY,TN+10 : Sam Raw %11,SOU+72704,3000,5000+TN*1000 : DL=0 : If TN>9 Then T=0 : Gosub EX
  95. Loop 
  96. Rem--------------------------------------------------------------------- 
  97. Rem TOKEN ROUTINE
  98. Rem--------------------------------------------------------------------- 
  99. TKEN:
  100. DAN:
  101. TX=Rnd(19)*16 : TY=Rnd(13)*16
  102. TP=Point(TX+24,TY+24) : If TP<>6 Then Goto DAN
  103. TN=1 : T=1 : DL=0
  104. Sam Raw %11,SOU+4504,5000,10000
  105. Paste Bob TX+16,TY+16,TN+10
  106. TX=TX+16 : TY=TY+16
  107. Return 
  108. Rem----------------------------------------------------------------------
  109. Rem JEWEL ROUTINE
  110. Rem----------------------------------------------------------------------
  111. JUEL:
  112. DAN1:
  113. JX=Rnd(19)*16 : JY=Rnd(13)*16
  114. JP=Point(JX+24,JY+24) : If JP<>6 Then Goto DAN1
  115. JN=1 : J=1 : JL=0 : JULC=2+Rnd(1)
  116. Sam Raw %1100,SOU+33504,10000,JULC*5000
  117. Paste Bob JX+16,JY+16,JULC
  118. JX=JX+16 : JY=JY+16
  119. Return 
  120. Rem----------------------------------------------------------------------
  121. Rem TOKEN EXPLODE
  122. Rem----------------------------------------------------------------------
  123. EX:
  124. Boom 
  125. Paste Bob TX,TY,9 : If TY<224 Then Paste Bob TX,TY+16,3
  126. If TX>16 Then Paste Bob TX-16,TY,3
  127. If TY>32 Then Paste Bob TX,TY-16,3
  128. If TX<288 Then Paste Bob TX+16,TY,3
  129. Return 
  130. Rem----------------------------------------------------------------------
  131. Rem SCORE UPDATE 
  132. Rem----------------------------------------------------------------------
  133. SCORE:
  134. SC=SC-1 : Inc SC1
  135. If SC1>9 Then SC1=0 : Inc SC2
  136. If SC2>9 Then SC2=0 : Inc SC3
  137. If SC3>9 Then SC3=0 : Inc SC4
  138. If SC4>9 Then SC4=0
  139. Paste Bob 96,0,SC1+10
  140. Paste Bob 80,0,SC2+10
  141. Paste Bob 64,0,SC3+10
  142. Paste Bob 48,0,SC4+10
  143. Return 
  144. Rem----------------------------------------------------------------------
  145. Rem LEVEL UPDATE 
  146. Rem----------------------------------------------------------------------
  147. LEVEL:
  148. If LE2>9 Then LE2=0 : LE1=LE1+1
  149. Paste Bob 176,0,LE2+10
  150. Paste Bob 160,0,LE1+10
  151. Return 
  152. KEN:
  153. If T2<0 Then T2=9 : T1=T1-1
  154. If T2<=0 and T1<=0 Then T1=0 : T2=0
  155. Paste Bob 272,0,T2+10
  156. Paste Bob 256,0,T1+10
  157. If T1=0 and T2=0 Then Goto UPLEVEL
  158. Return 
  159. Rem--------------------------------------------------------------------- 
  160. Rem GAME OVER      LEVEL FINISHED
  161. Rem--------------------------------------------------------------------- 
  162. E:
  163. Boom 
  164. Wait 100
  165. Pen 13 : Paper 0
  166. Ink 0 : Bar 115,130 To 215,155
  167. Ink 15 : Box 110,125 To 210,150
  168. Ink 14 : Box 111,126 To 209,149
  169. Ink 13 : Box 112,127 To 208,148
  170. Ink 12 : Bar 113,128 To 207,147
  171. Ink 5 : Gr Writing 0 : Text 123,140,"GAME OVER"
  172. Wait 200 : Gosub HISCORE : Goto ST
  173. UPLEVEL:
  174. Cls 0,110,125 To 210,150
  175. Ink 0 : Bar 115,130 To 215,155
  176. Ink 15 : Box 110,125 To 210,150
  177. Ink 14 : Box 111,126 To 209,149
  178. Ink 13 : Box 112,127 To 208,148
  179. Ink 12 : Bar 113,128 To 207,147
  180. Ink 5 : Gr Writing 0 : Text 140,136,"LEVEL"
  181. Ink 6 : Text 124,144,"COMPLETED"
  182. Wait 150
  183. LE2=LE2+1 : For F=1 To TT : T2=T2+1 : If T2>9 Then T2=0 : T1=T1+1
  184. Next F
  185. TT=TT+5 : TS=TS-10 : If TS<20 Then TS=20
  186. Unpack 4 To 0 : Curs Off 
  187. Gosub KEN : Gosub LEVEL : Gosub SCORE
  188. Goto NL
  189. Rem--------------------------------------------------------------------- 
  190. Rem HIGH SCORE UPDATE
  191. Rem--------------------------------------------------------------------- 
  192. HISCORE:
  193. NHS=0 : SC=SC4*1000+SC3*100+SC2*10+SC1
  194. For F=5 To 1 Step -1
  195. If SC>HI(F) Then NHS=1
  196. Next F
  197. If NHS=0 Then Goto HCC
  198. Set Rainbow 0,1,220,"(6,1,15)(6,-1,15)(3,1,15)","(6,-1,15)(7,1,15)(3,-1,15)(2,1,15)","(6,-1,15)(6,0,15)(3,-1,15)(2,1,15)"
  199. Rainbow 0,1,59,220
  200. For F=0 To 20 : Paste Bob 0,F*16,60 : Paste Bob 16,F*16,1 : Paste Bob 288,F*16,1 : Next F
  201. A=0
  202. For F=1 To 5 : For R=1 To 6
  203. Cls 0,38+R*32,F*32-2 To 56+R*32,F*32+16
  204. Paste Bob 40+R*32,F*32,A+22
  205. Ink 15 : Box 38+R*32,F*32-2 To 56+R*32,F*32+16
  206. Inc A
  207. Next R : Next F
  208. Ink 0 : Gr Writing 0 : Text 75,195,"PLEASE ENTER YOUR NAME"
  209. Ink 1 : Gr Writing 0 : Text 73,193,"PLEASE ENTER YOUR NAME"
  210. X=1 : Y=1 : X1=110 : A=0 : C=1 : N$="     " : Cls 0,100,211 To 220,236
  211. Repeat 
  212. Ink 11 : Box 38+Y*32,X*32-2 To 56+Y*32,X*32+16
  213. Wait 5
  214. Ink 15 : Box 38+Y*32,X*32-2 To 56+Y*32,X*32+16
  215. Cls 0,X1,211 To X1+20,230
  216. Wait 5
  217. If Jup(1)=-1 and X>1 Then Dec X : A=A-6
  218. If Jdown(1)=-1 and X<5 Then Inc X : A=A+6
  219. If Jleft(1)=-1 and Y>1 Then Dec Y : A=A-1
  220. If Jright(1)=-1 and Y<6 Then Inc Y : A=A+1
  221. If A<28 Then Cls 0,X1,211 To X1+20,230 : Paste Bob X1,215,A+22
  222. If A>=28 Then Cls 0,X1,211 To X1+20,230
  223. If Fire(1)=0 Then Goto W
  224. If A<28 Then X1=X1+20 : Mid$(N$,C,1)=Chr$(A+97) : C=C+1
  225. If A=28 and X1>110 Then Cls 0,X1,211 To X1+20,230 : X1=X1-20 : Mid$(N$,C,1)=" " : C=C-1
  226. If A=29 Then C=6
  227. I:
  228. If Fire(1)=-1 Then Goto I
  229. W:
  230. Until C>5
  231. For F=5 To 2 Step -1
  232. If SC>HI(F) Then HI(F)=HI(F-1) : H$(F)=H$(F-1)
  233. If SC<HI(F-1) Then HI(F)=SC : H$(F)=N$ : Rainbow 0,1,0,0 : Goto HCC
  234. Next F
  235. HI(1)=SC : H$(1)=N$
  236. Rem--------------------------------------------------------------------
  237. Rem HIGH SCORE DISPLAY 
  238. Rem--------------------------------------------------------------------
  239. HCC:
  240. Rainbow 0,1,0,0
  241. HSC:
  242. Screen Hide 0 : Screen Open 2,345,256,2,Lowres : Curs Off : Palette 0,$CCC
  243. Screen Display 2,136,40,320,256
  244. Set Rainbow 1,1,250,"(1,1,15)(1,-1,15)(11,1,15)(1,-1,15)","","(1,0,15)(1,0,15)(11,-1,15)(1,2,15)"
  245. Rainbow 1,1,40,250 : DA$="todays high scores*" : DA=1 : XA=5 : YA=10
  246. Repeat 
  247. Gosub PR
  248. Until E=1
  249. I=1 : TY=7 : XA=115 : YA=50 : DA$=H$(I)+"*" : E=0 : DA=1
  250. For R=1 To 5
  251. Repeat 
  252. Gosub PR
  253. Until E=1
  254. Locate 27,TY : Print Using "####";HI(I) : Locate 8,TY : Print Using "####";HI(I)
  255. Inc I : XA=115 : YA=YA+32 : TY=TY+4 : E=0 : DA=1 : DA$=H$(I)+"*"
  256. Next R
  257. DJ=1 : CJ=1 : DJ$="    .top five.          *"
  258. LJ=0
  259. Def Scroll 6,0,200 To 340,232,-2,0
  260. Def Scroll 7,200,200 To 210,215,0,-1
  261. Def Scroll 8,200,219 To 210,230,0,1
  262. Def Scroll 9,105,200 To 115,214,0,1
  263. Def Scroll 10,105,220 To 115,232,0,-1
  264. Repeat 
  265. Scroll 6 : Scroll 7 : Scroll 8 : Scroll 9 : Scroll 10 : Wait Vbl 
  266. BJ=Asc(Mid$(DJ$,DJ,1)) : If BJ=32 Then BJ=124
  267. If BJ=46 Then BJ=123
  268. If BJ=42 Then DJ=1 : BJ=Asc(Mid$(DJ$,DJ,1)) : If BJ=32 Then BJ=124
  269. CJ=CJ+1 : If CJ>7 Then Paste Bob 320,210,BJ-75 : CJ=0 : Inc DJ
  270. Inc LJ
  271. Until LJ>800 or Fire(1)=-1
  272. Wait Vbl : Screen Close 2 : Rainbow 1,1,0,0
  273. Return 
  274. PR:
  275. BA=Asc(Mid$(DA$,DA,1)) : If BA=32 Then BA=124
  276. If BA=46 Then BA=123
  277. If BA=42 Then E=1 : Return 
  278. Paste Bob XA,YA,BA-75 : Inc DA
  279. XA=XA+17
  280. Return